#ifndef AVATARLIBRARY_H
#define AVATARLIBRARY_H
#include <QString>
#include <QVector3D>

class AvatarLibrary
{
public:
    static void avatar_init(const QString& directory, void* hwnd);
    static void avatar_log(int level, std::function<void(const QString&, const QString&)> callback);
    static void avatar_resize(int width, int height);
    static void avatar_mouse(int x, int y, int button, int delta);
    static void avatar_keyboard(int key);
    static void avatar_move(float x, float y, float z);
    static void avatar_update();
    static void avatar_command(const QString& command);
    static void avatar_camera_position(QVector3D& pos);
    static void avatar_camera_angle(QVector3D& pos);
    static void avatar_camera_target(QVector3D& pos);
    static void avatar_camera_orientation(QVector4D& pos);
    static void avatar_picking(int sx, int sy, QVector3D& pos);
    static void avatar_register(const QString& function, int(*callback)(int, const char**, void*), void* userdata);
    static void avatar_execute(const QString& script, QString& result);
    static void avatar_exit();
    static void avatar_document(QString& document);
    static void avatar_compress(const QString& base, const QStringList& files, const QString& zip);
};

#endif // AVATARLIBRARY_H
